package BD;
/*atual*/
import java.sql.*;
import java.util.ArrayList;
import javax.swing.JOptionPane;//

public class sabores_Itens extends bd {
/*id_produtos, descricao, custo, qtdatual, unidade, volume*/
    private int id_sabores_itens  = 0   ;
    private int id_sabores   = 0   ;
    private int id_produtos  = 0   ;
    private String desc_produto = "";
    private int qtd = 0;

    public int getQtd() {
        return qtd;
    }

    public void setQtd(int qtd) {
        this.qtd = qtd;
    }
    public int getId_sabores_itens() {
        return id_sabores_itens;
    }

    public void setId_sabores_itens(int id_sabores_itens) {
        this.id_sabores_itens = id_sabores_itens;
    }

    public int getId_sabores() {
        return id_sabores;
    }

    public void setId_sabores(int id_sabores) {
        this.id_sabores = id_sabores;
    }

    public int getId_produtos() {
        return id_produtos;
    }

    public void setId_produtos(int id_produtos) {
        this.id_produtos = id_produtos;
    }

    public String getDesc_produto() {
        return desc_produto;
    }

    public void setDesc_produto(String desc_produto) {
        this.desc_produto = desc_produto;
    }

    public boolean incluir() {

            
        try {
            if (!estaConectado()) 
                conecta();          
            stmt = getConexao().createStatement();          
            sql = "INSERT INTO sabores_itens VALUES ((select coalesce(max(id_sabores_itens)+1,1) from sabores_itens),"
                    +"'"+ Integer.toString(this.getId_sabores())+ "', "                    
                    +"'"+ Integer.toString(this.getId_produtos())+"',"
                    +"'"+ Integer.toString(this.getQtd())+"');";            
            stmt.executeUpdate(sql);
            stmt.close();
            //System.out.print(this.sql);
            return true;
            
        } catch (SQLException objErro) {
            JOptionPane.showMessageDialog(null, "Não foi possível executar a Query \n" + objErro.getMessage());
            return false;
        }
    }

    public boolean alterar() {
        try {
            if (!estaConectado()) 
                conecta();          

            stmt = getConexao().createStatement();          
            sql = "UPDATE sabores_itens "+
                  "SET id_produtos='"+ Integer.toString(this.getId_produtos()) + "', "+                  
                  "    id_sabores='"+ Integer.toString(this.getId_sabores()) + "', "+                  
                  "    qtd='"+ Integer.toString(this.getQtd()) + "' "+                  
                  " WHERE id_sabores_itens='"+ Integer.toString(this.getId_sabores_itens())+"';";
                   
            stmt.executeUpdate(sql);
            stmt.close();
            //System.out.print(this.sql);
            return true;
        } catch (SQLException objErro) {
            JOptionPane.showMessageDialog(null, "Não foi possível executar a Query \n" + objErro.getMessage());
            return false;
        }

    }

    public ResultSet consultar() {
        if (!estaConectado()) {
            conecta();
        }
        try {
            stmt = getConexao().createStatement();
            sql = "SELECT sabores_itens.*,produtos.descricao FROM sabores_itens  "+
                  "inner join produtos on produtos.id_produtos=sabores_itens.id_produtos "
                + "WHERE  id_sabores = "+Integer.toString(this.id_sabores);
            
//            if (! this.descricao.equals("") ){
//            sql = sql + " AND descricao like  '%"+this.getDescricao()+"%';";
//            }
            
            rs = stmt.executeQuery(sql);
            return rs;
            
        } catch (SQLException objErro) {
            JOptionPane.showMessageDialog(null, "Não foi possível executar a Query \n" + objErro.getMessage());
            return null;
        }
        
    }
    public ArrayList<sabores_Itens> getItens(){
        ArrayList itens = new ArrayList();
        rs = this.consultar();
        try{
            while(rs.next()){
                sabores_Itens    obj = new sabores_Itens();
                obj.setId_sabores_itens(rs.getInt("id_sabores_itens"));
                obj.setId_sabores(rs.getInt("id_sabores"));
                obj.setId_produtos(rs.getInt("id_produtos"));
                obj.setDesc_produto(rs.getString("descricao"));
                obj.setQtd(rs.getInt("qtd"));
                itens.add(obj);               
            }
            stmt.close();
            disconecta();
        }
        catch(SQLException erro){
            msgErro = erro.getMessage();            
            JOptionPane.showMessageDialog(null, erro.getMessage());
        }        
        return itens;
    }
    
    public boolean excluir() {
        if (!estaConectado()) {
            conecta();
        }        
        try {
            stmt = getConexao().createStatement();                      
            sql ="DELETE FROM sabores_itens "+                  
                 "WHERE id_sabores_itens = "+ Integer.toString(this.id_sabores_itens);            
            stmt.execute(sql);                        
            return  true;
        } catch (SQLException objErro) {
            JOptionPane.showMessageDialog(null, "Não foi possível  a Query \n" + objErro.getMessage());
            return false;
        }      

    } 
    public static void main(String []args){
//         sabores sab = new sabores();
         sabores_Itens sabi = new sabores_Itens();
         sabi.setId_produtos(2);
         sabi.setId_sabores(3);
         sabi.incluir();
/*         
        ArrayList<sabores_Itens> list = new ArrayList<sabores_Itens>();
        list = sabi.getItens();
        for (int i = 0; i < list.size(); i++) {
            JOptionPane.showMessageDialog(null, list.get(i).getId_sabores());
            
        }
 6*/
//        sab.setId_sabores(1);
//        sab.setDescricao("portugueza");
//        sab.incluir();
//        sab.alterar();
//        sab.excluir();
    }

    
}
